import pymysql

host = 'localhost'
username = 'root'
password = ' '
mydb = 'stu'

#定义类
class Student_MC:
	#数据库连接
	def __init__(self,):
		try:
			self.db = pymysql.connect(host = host, user = username, password = password, db = mydb, charset = 'utf8' )
		except:
			print("无法连接到数据库！！！")

	def Stu_Face(self):
		'''学生信息库操作界面'''
		print("*"*50)
		print("{0:1}{1:>28}{0:>16}".format("|","《在线学生信息管理》"))
		print("-"*57)
		print("{0:8}{1:<13}{0:7}{2:<8}{0:>6}".format("|","1、查看学生信息","2、添加学生信息"))
		print("{0:8}{1:<13}{0:7}{2:<8}{0:>6}".format("|","3、删除学生信息","4、退出管理系统"))
		print("-"*57)
		print("{0:1}{1:>30}{0:>20}".format("|","Made in ZQ"))
		print("*"*50)

	def FindAll(self):
		'''学生信息查询操作'''
		#使用cursor()方法创建一个游标对象cursor
		cursor = self.db.cursor()
		#定义查询语句sql
		sql = "select * from stu"
		#try语句查错，以及cursor执行查询语句
		try:
			cursor.execute(sql)
			#查询所有信息，定义表格变量
			alist = cursor.fetchall()
			#遍历表格，并且输出
			for a in alist:
				print(a)
		except Exception as err:
			print("SQl执行错误，原因：",err)

	def Add(self,data):
		'''学生信息添加操作'''
		#try语句查错，以及cursor执行查询语句
		cursor = self.db.cursor()
		#定义data变量。以及sql语句
		data = data.split("，")
		sql = "insert into stu(name, age, sex, clssid) values('%s','%d','%s','%s')"%(data)
		#执行cursor语句
		try:
			m = cursor.execute(sql)
			#事务提交
			self.db.commit()
			print("成功添加")
		except Exception as err:
			self.db.rollback()
			print("SQl执行错误，原因：",err)

	def Del(self,id):
		'''学生信息删除操作'''
		cursor = self.db.cursor()
		sql = "delete from stu where id=%d"%(id)
		try:
			cursor.execute(sql)
			db.commit()
			print("成功删除学号为%s的学生信息"%(id))
		except Exception as err:
			self.db.rollback()
			print("SQl执行错误，原因：",err)

	#关闭连接数据库
	def __del__(self):
		self.db.close()
#实例化类
mStu = Student_MC()
mStu.Stu_Face()

while True:
	
	key = input("输入需要进行的操作编号：")
	if key == "1":
		print("="*12,"学生信息浏览","="*14)
		mStu.FindAll()
		input("按回车键继续：")
	elif key == "2":
		print("="*12,"学生信息添加","="*14)
		mStu.Add(input("输入姓名，年龄，性别，班级(以逗号隔开)："))
		input("按回车键继续：")
	elif key == "3":
		print("="*12,"学生信息浏览","="*14)
		mStu.Del(input("请输入要删除的学号："))
		input("按回车键继续：")
	elif key == "4":
		print("="*12,"您已退出学生信息管理系统","="*14)
		break
	else:
		print(" 无法完成您的操作！ ")
